package com.zkthink.ceres.product.service;

import com.zkthink.base.R;
import com.zkthink.base.service.SuperService;
import com.zkthink.ceres.product.dto.*;
import com.zkthink.ceres.product.entity.ProductCategory;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 商品分类表
 * </p>
 *
 * @author JustArgo
 * @date 2020-05-03
 */
public interface ProductCategoryService extends SuperService<ProductCategory> {
    /** 删除类目
     * @author JustArgo 2020/5/10 15:29
     * @return
     */
    public R<Boolean> delCategory(Long categoryId, Integer depth);

    /** 新增类目
     * @author JustArgo 2020/5/10 15:29
     * @return
     */
    R<Boolean> addCategory(List<ProductCategoryDTO> dtoList);

    /** 编辑类目
     * @author JustArgo 2020/5/10 15:42
     * @return
     */
    R<Boolean> updateCategory(List<ProductCategoryDTO> dtoList);

    /** 查询所有类目
     * @author JustArgo 2020/5/10 16:06
     * @return
     */
    R<List<ProductCategoryDTO>> queryAllCategory();

    /** 查询单个类目
     * @author JustArgo 2020/5/10 16:08
     * @return
     */
    R<ProductCategoryDTO> queryOneCategory(IdQueryDTO dto);

    /** 查询子级类目
     * @author JustArgo 2020/5/10 16:09
     * @return
     */
    R<List<ProductCategoryDTO>> queryChildCategory(IdQueryDTO dto, boolean filterStatus);

    /** 查询N级类目数据
     * @author JustArgo 2020/5/14 21:03
     * @return
     */
    R<List<ProductCategoryDTO>> findCategoryListByDepth(Integer depth, boolean filterStatus);

    /** 分页查询类目
     * @author JustArgo 2020/5/14 21:55
     * @return
     */
    R<AdminProductCategoryPageDTO> findPageCategory(PageQueryDTO pageQueryDTO);
}
